package com.ehsunbehravesh.service.security.ejb.hash;

/**
 * Hash business base interface.
 * @author ehsun.behravesh
 */
public interface HashBusiness {

  /**
   *
   * @param data
   * @return
   */
  public byte[] hashMD5(byte[] data) throws HashServiceException;

  /**
   *
   * @param data
   * @return
   */
  public byte[] hashSHA1(byte[] data) throws HashServiceException;

  /**
   *
   * @param data
   * @return
   */
  public byte[] hashSHA256(byte[] data) throws HashServiceException;

  /**
   *
   * @param data
   * @return
   */
  public byte[] hashSHA512(byte[] data) throws HashServiceException;

  /**
   *
   * @param data
   * @return
   */
  public byte[] hashSHA3(byte[] data) throws HashServiceException;
  
  /**
   * 
   * @param data
   * @return
   * @throws HashServiceException 
   */
  public long sumCRC32(byte[] data) throws HashServiceException;
  
  /**
   * 
   * @param data
   * @return
   * @throws HashServiceException 
   */
  public long sumAdler32(byte[] data) throws HashServiceException;
}
